﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using InfraWEB.BLL;

namespace InfraWEB.UI
{
	public partial class Base : System.Web.UI.Page
	{
		/// <summary>
		/// Verifica se Usuário está logado.
		/// </summary>
		public void CheckIfUsuarioIsLogged()
		{
			if (LoggedUsuarioId == 0)
			{
				Response.Redirect("~/Login.aspx");
			}
		}

		/// <summary>
		/// Verifica se o usuário logado tem permissão de acesso.
		/// </summary>
		/// <param name="tipoUsuario"></param>
		public void CheckIfUsuarioHasAccessPermission(int tipoUsuario)
		{
			Usuario user = new Usuario();
			if (user.GetUsuariosByUsuId(LoggedUsuarioId)[0].UsuTipo != tipoUsuario)
			{
				Response.Redirect("~/Index.aspx");
			}
		}

		#region Session Properties
		/// <summary>
		/// Id do usuário logado na sessão atual
		/// </summary>
		public int LoggedUsuarioId
		{
			get
			{
				if (Context.Session["LoggedUserId"] == null)
				{
					return 0;
				}
				else
				{
					return int.Parse(Context.Session["LoggedUserId"].ToString());
				}
			}
			set
			{
				Context.Session["LoggedUser"] = value;
			}
		}

		/// <summary>
		/// Verifica se o usuário logado é Gerente
		/// </summary>
		public bool isGerente
		{
			get { return (bool)Context.Session["IsGerente"]; }
			set { Context.Session["IsGerente"] = value; }
		}

		/// <summary>
		/// Verifica se o usuário logado é Administrador
		/// </summary>
		public bool isAdmin
		{
			get { return (bool)Context.Session["IsAdmin"]; }
			set { Context.Session["IsAdmin"] = value; }
		}

		/// <summary>
		/// Verifica se o usuário logado pertence à Equipe Administrativa
		/// </summary>
		public bool isEquipeAdmin
		{
			get { return (bool)Context.Session["IsEquipeAdmin"]; }
			set { Context.Session["IsEquipeAdmin"] = value; }
		}

		/// <summary>
		/// Verifica se o usuário logado é Funcionário
		/// </summary>
		public bool isFuncionario
		{
			get { return (bool)Context.Session["IsFuncionario"]; }
			set { Context.Session["IsFuncionario"] = value; }
		}
		#endregion
	}
}
